home *** CD-ROM | disk | FTP | other *** search
/ PC-SIG Library 8 / PC-SIG Library CD-ROM (8th Edition) (1990-04).iso / 201_300 / disk0206 / factor.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  896 b   |  47 lines

  1. 10  CLS
  2. 20  KEY OFF
  3. 30  PRINT "FACTORIALS"
  4. 40  DEFDBL F,N,X
  5. 50  PRINT
  6. 60  PRINT "ENTER THE NUMBER WHOSE FACTORIAL YOU WANT"
  7. 70  PRINT "(ENTER ZERO TO END)";
  8. 80  INPUT N
  9. 90  IF N<0 OR N<>INT(N) THEN 60
  10. 100  IF N=0 THEN END
  11. 110  F=1:J=0:I=0:K=0
  12. 120  IF N>69 THEN 220
  13. 130  REM CALCULATE USING RECURSIVE ALGORITHM
  14. 140  FOR I=2 TO N
  15. 150  F=F*I
  16. 160  IF F<1E+10 THEN 190
  17. 170  F=F/1E+10
  18. 180  J=J+10
  19. 190  NEXT I
  20. 200  GOTO 370
  21. 210  REM CALCULATE USING STIRLING'S APPROXIMATION
  22. 220  K=INT(N/5)
  23. 230  I=I+5
  24. 240  IF I>K*5 THEN 350
  25. 250  F=F*N*N*N*N*N/EXP(5)
  26. 260  IF F>1E+30 THEN 290
  27. 270  IF F>1E+20 THEN 320
  28. 280  GOTO 230
  29. 290  F=F/1E+30
  30. 300  J=J+30
  31. 310  GOTO 260
  32. 320  F=F/1E+20
  33. 330  J=J+20
  34. 340  GOTO 260
  35. 350  X=SQR(N*6.28319)
  36. 360  F=(F*N^(N-K*5))/EXP(N-K*5)*X
  37. 370  PRINT "THE FACTORIAL OF";N;"IS";
  38. 380  PRINT CSNG(F);
  39. 390  IF J=0 THEN 410
  40. 400  PRINT "TIMES 10 TO THE POWER";J;", "
  41. 410  IF K>0 THEN 440
  42. 420  PRINT "COMPUTED RECURSIVELY"
  43. 430  GOTO 50
  44. 440  PRINT "COMPUTED BY STIRLING'S APPROXIMATION"
  45. 450  GOTO 50
  46. 460  END
  47.